Ps (유닉스)
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
ps는 현재 실행 중인 프로세스에 대한 정보를 보여주는 유닉스 및 유닉스 계열 운영 체제의 명령어이다. ps 명령어를 사용하면 프로세스 ID, 사용 시간, 메모리 사용량 등과 같은 정보를 확인할 수 있으며, grep, pgrep과 같은 다른 명령어와 함께 사용하여 특정 프로세스를 찾거나, 파이프를 통해 출력을 다른 명령어로 처리할 수 있다. ps는 다양한 옵션을 제공하며, 운영 체제에 따라 표준 옵션(-ef, -l) 또는 BSD 계열 옵션(aux)을 사용할 수 있다.
더 읽어볼만한 페이지
- 유닉스 프로세스 및 작업 관리 관련 소프트웨어 - Top (소프트웨어)
top은 시스템의 실시간 상태를 보여주는 프로세스 모니터링 소프트웨어 유틸리티로, CPU 사용률, 메모리 사용량, 실행 중인 프로세스 목록 등 다양한 정보를 제공한다. - 유닉스 프로세스 및 작업 관리 관련 소프트웨어 - Kill (명령어)
kill은 유닉스, 윈도우 등 다양한 운영 체제에서 프로세스에 신호를 보내는 데 사용되는 명령어로, 프로세스 ID 또는 프로세스 그룹 ID를 통해 프로세스 종료를 요청하거나 강제 종료를 실행한다. - 유닉스 SUS2008 유틸리티 - AWK
AWK는 1977년에 개발된 텍스트 처리 및 프로그래밍 언어로, 유닉스 환경에서 텍스트 처리를 위해 설계되었으며 정규 표현식 처리 기능을 통해 텍스트 분석, 데이터 추출, 보고서 생성 등 다양한 작업을 수행한다. - 유닉스 SUS2008 유틸리티 - 로케일
로케일은 소프트웨어 국제화 및 지역화에서 사용자 문화적 배경에 맞춰 사용 환경을 조정하는 설정으로, 표시 언어, 숫자/날짜 형식, 문자 분류, 통화 형식 등을 포함한다.
Ps (유닉스) - [IT 관련 정보]에 관한 문서 | |
---|---|
개요 | |
유형 | 유닉스, 유닉스 계열, 플랜 9, 인페르노, 콜리브리OS, IBM i 명령어 |
용도 | 현재 실행 중인 프로세스 표시 |
최초 릴리스 | 1973년 2월 |
개발자 | AT&T 벨 연구소 및 다양한 오픈 소스/상업 개발자 |
운영체제 | 유닉스, 유닉스 계열, 플랜 9, 인페르노, 콜리브리OS, IBM i |
프로그래밍 언어 | C |
라이선스 (Plan 9) | MIT 라이선스 |
추가 정보 | |
플랫폼 | 크로스 플랫폼 |
2. 예제
`ps` 명령어는 grep 명령어와 함께 사용하여 특정 프로세스에 대한 정보를 얻을 수 있다. 예를 들어, `firefox-bin`의 PID를 찾으려면 다음과 같이 입력한다.
```console
$ ps -A | grep firefox-bin
2701 ? 22:16:04 firefox-bin
```
pgrep을 사용하면 더 간결하게 동일한 결과를 얻을 수 있다.
```console
$ pgrep -l firefox-bin
2701 firefox-bin
```
root 권한으로 실행 중인 모든 프로세스를 사용자 형식으로 보려면 다음과 같이 입력한다.
```console
# ps -U root -u
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
root 1 0.0 0.0 9436 128 - ILs Sun00AM 0:00.12 /sbin/init --
2. 1. 기본적인 사용 예제
다음은 현재 터미널에서 실행 중인 프로세스 목록을 보여주는 예제이다.tux:~$ ps
PID TTY TIME CMD
7431 pts/0 00:00:00 su
7434 pts/0 00:00:00 bash
18585 pts/0 00:00:00 ps
grep 명령어와 함께 사용하여, 특정 프로세스의 프로세스 ID 같은 정보를 알아볼 수 있다.
tux:~$ ps -A | grep firefox-bin
11778 ? 02:40:08 firefox-bin
11779 ? 00:00:00 firefox-bin
사용자는 파이프를 사용하여
ps
를 less와 같은 다른 명령어와 함께 사용하여 프로세스 상태 출력을 한 페이지씩 볼 수 있다.$ ps -A | less
사용자는 또한
ps
명령을 grep
명령과 함께 사용하여 단일 프로세스에 대한 정보(예: ID)를 찾을 수 있다. (pgrep
및 pkill
명령 참조)$ # `firefox-bin`의 PID를 찾으려고 시도, 2701
$ ps -A | grep firefox-bin
2701 ? 22:16:04 firefox-bin
pgrep
을 사용하면 구문이 단순해지고 잠재적인 경합 조건이 방지된다.$ pgrep -l firefox-bin
2701 firefox-bin
사용자 형식으로 root 권한으로 실행 중인 모든 프로세스를 보는 방법은 다음과 같다.
# ps -U root -u
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
root 1 0.0 0.0 9436 128 - ILs Sun00AM 0:00.12 /sbin/init --
2. 2. grep 명령어와 함께 사용
`ps -A` 명령어는 시스템의 모든 프로세스를 표시하며, `grep firefox-bin` 명령어는 "firefox-bin"이라는 문자열을 포함하는 프로세스만 필터링한다. 이를 통해 특정 프로세스의 ID를 쉽게 찾을 수 있다.```console
tux:~$ ps -A | grep firefox-bin
11778 ? 02:40:08 firefox-bin
11779 ? 00:00:00 firefox-bin
```
pgrep을 사용하면 구문이 단순해지고 잠재적인 경합 조건이 방지된다.
```console
$ pgrep -l firefox-bin
2701 firefox-bin
2. 3. pgrep 명령어 사용 (참고)
pgrep 명령어는 ps와 grep을 함께 사용하는 것보다 더 간결하게 특정 프로세스를 찾을 수 있게 해준다.```console
$ pgrep -l firefox-bin
2701 firefox-bin
3. 옵션
`ps`는 다양한 옵션을 가지고 있다. 단일 유닉스 규격 표준을 지원하는 운영 체제에서는 `-ef` 옵션과 함께 사용되는데, `-e`는 모든 프로세스를, `-f`는 완전한 출력 포맷을 선택한다. `-l` 옵션은 긴 출력 포맷을 지정한다.
BSD 유래 시스템들은 역사적인 갈등 때문에 POSIX와 UNIX 표준 옵션을 사용하지 않는다. 이러한 시스템들에서는 `ps`가 비표준 옵션 `aux`로 실행된다. `a`는 다른 사용자의 프로세스를 포함한 모든 프로세스를, `x`는 제어 터미널 없는 프로세스를, `u`는 각 프로세스의 통제 사용자를 추가한다. "aux" 앞에 "-"가 없음에 유의해야 하며, `aux` 뒤에 `www`를 추가하여 모든 변수를 포함한 프로세스 정보를 볼 수 있다.
3. 1. 표준 옵션 (POSIX/SUS)
단일 유닉스 규격 표준을 지원하는 운영 체제에서 `ps` 명령어는 일반적으로 '-ef' 옵션과 함께 사용된다. '-ef'에서 '-e'는 모든(every) 프로세스를 선택하고, '-f'는 완전한(full) 출력 형식을 지정한다. 이 외에도 자주 사용되는 옵션으로 '-l'이 있는데, 이는 긴(long) 출력 형식을 나타낸다.BSD에서 파생된 대부분의 시스템에서는 역사적인 충돌 때문에 POSIX와 UNIX 표준 옵션을 사용하지 않는다. (예를 들어, 'e'나 '-e' 옵션은 환경 변수를 표시한다.) 이러한 시스템에서 `ps` 명령어는 주로 비표준 옵션인 'aux'와 함께 실행된다. 'aux'에서 'a'는 다른 사용자의 프로세스를 포함하여 모든 프로세스를 나열하고, 'x'는 제어 터미널이 없는 모든 프로세스를, 'u'는 각 프로세스의 제어 사용자를 추가한다. 이 구문을 사용할 때는 최대 호환성을 위해 'aux' 앞에 '-'를 붙이지 않는다. 프로세스에 대한 더 자세한 정보를 보려면 (모든 매개변수를 포함) 'ps auxwww'와 같이 'aux' 뒤에 'www'를 추가할 수 있다.
3. 2. BSD 계열 옵션
BSD 계열 운영 체제에서 `ps` 명령어는 일반적으로 `aux` 옵션과 함께 사용된다. `aux`에서 `a` 옵션은 다른 사용자의 프로세스를 포함한 모든 프로세스를 표시하며, `x` 옵션은 제어 터미널이 없는 프로세스를 포함하고, `u` 옵션은 각 프로세스의 사용자 이름을 추가한다. 이러한 옵션을 사용할 때는 `aux` 앞에 `-`를 붙이지 않는다.`auxwww`처럼 `aux` 뒤에 `www`를 추가하면, 잘리지 않은 전체 명령어와 모든 매개변수를 포함하여 프로세스에 대한 완전한 정보를 볼 수 있다.
4. 헤더 정보
열 머리글 | 내용 |
---|---|
%CPU | 프로세스가 사용하고 있는 CPU의 양 |
%MEM | 프로세스가 사용하고 있는 메모리의 양 |
ADDR | 프로세스의 메모리 주소 |
C 또는 CP | CPU 사용량 및 스케줄링 정보 |
COMMAND* | 프로세스의 이름 (인수가 있는 경우 포함) |
NI | nice 값 |
F | 플래그 |
PID | 프로세스 ID 번호 |
PPID | 부모 프로세스의 ID 번호 |
PRI | 프로세스의 우선순위 |
RSS | 상주 집합 크기 |
S 또는 STAT | 프로세스 상태 코드 |
START 또는 STIME | 프로세스가 시작된 시간 |
VSZ | 가상 메모리 사용량 |
TIME | 프로세스가 사용한 CPU 시간의 양 |
TT 또는 TTY | 프로세스와 연관된 터미널 |
UID 또는 USER | 프로세스 소유자의 사용자 이름 |
WCHAN | 프로세스가 대기 중인 이벤트의 메모리 주소 |
- = 종종 약어로 사용됨
5. 구현
KolibriOS는 `ps` 명령어 구현을 포함한다.[1] `ps` 명령어는 IBM i 운영 체제로 이식되었다.[2] 윈도우 파워셸에서 `ps`는 `Get-Process` cmdlet에 대한 미리 정의된 명령어 별칭이며, 이는 본질적으로 동일한 목적을 수행한다.
참조
[1]
웹사이트
Shell - KolibriOS wiki
http://wiki.kolibrio[...]
[2]
웹사이트
IBM System i Version 7.2 Programming Qshell
https://www.ibm.com/[...]
2020-09-05
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com